home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 22 / Cream of the Crop 22.iso / bbs / fmail122.zip / FMSTRUCT.ZIP / FMSTRUCT.H < prev   
C/C++ Source or Header  |  1996-09-29  |  19KB  |  609 lines

  1.  
  2. /*
  3.    FMSTRUCT.H
  4.  
  5.         File structures for FMail 1.22
  6.         Copyright (C) 1996 Folkert J. Wijnstra. All rights reserved.
  7.  
  8.     All information in this document is subject to change at any time
  9.     without prior notice!
  10.  
  11.     Strings are NUL terminated arrays of char type.
  12.     Path names always end on a \ character (followed by NUL).
  13. */
  14.  
  15.  
  16. /**** Modify the type definitions below if necessary for your compiler ****/
  17.  
  18. #define fhandle signed int
  19. #define u8    unsigned char
  20. #define uchar unsigned char
  21. #define schar char
  22. #ifndef __32BIT__
  23. #define u16 unsigned int
  24. #define s16 signed int
  25. #else
  26. #define u16 short unsigned int
  27. #define s16 short signed int
  28. #endif
  29. #define u32 long unsigned int
  30. #define s32 long signed int
  31. #define udef unsigned int
  32. #define sdef signed int
  33.  
  34. #define MAX_U32    0xFFFFFFFFL
  35.  
  36.  
  37. /* ********** General structures ********** */
  38.  
  39. typedef struct
  40. {  uchar programName[46];
  41.    u16   memRequired;      } archiverInfo;
  42.  
  43. typedef uchar pathType[48];
  44.  
  45. typedef struct
  46. {  u16   zone;
  47.    u16   net;
  48.    u16   node;
  49.    u16   point; } nodeNumType;
  50.  
  51. typedef struct
  52. {  nodeNumType nodeNum;
  53.    u16         fakeNet; } nodeFakeType;
  54.  
  55.  
  56. /* ********** File header structure ********** */
  57.  
  58. #define DATATYPE_CF    0x0102 /* not used yet              */
  59. #define DATATYPE_NO    0x0202 /* node file                        */
  60. #define DATATYPE_AD    0x0401 /* area file for echo mail defaults */
  61. #define DATATYPE_AE    0x0402 /* area file for echo mail          */
  62.  
  63. typedef struct
  64. {  uchar versionString[32]; /* Always starts with 'FMail' */
  65.    u16   revNumber;         /* Is now 0x0100 */
  66.    u16   dataType;          /* See #defines above */
  67.    u16   headerSize;
  68.    s32   creationDate;
  69.    s32   lastModified;
  70.    u16   totalRecords;
  71.    u16   recordSize;
  72. } headerType;
  73.  
  74.  
  75. /* The structure below is used by the Areas File and (only partly)
  76.    by the Config File */
  77.  
  78. typedef struct
  79. {  unsigned active      : 1; /* Bit  0 */
  80.    unsigned tinySeenBy  : 1; /* Bit  1 */
  81.    unsigned security    : 1; /* Bit  2 */
  82.    unsigned             : 1; /* Bit  3 */
  83.    unsigned allowPrivate: 1; /* Bit  4 */
  84.    unsigned impSeenBy   : 1; /* Bit  5 */
  85.    unsigned checkSeenBy : 1; /* Bit  6 */
  86.    unsigned             : 1; /* Bit  7 */
  87.    unsigned local       : 1; /* Bit  8 */
  88.    unsigned disconnected: 1; /* Bit  9 */
  89.    unsigned _reserved   : 1; /* Bit 10 */
  90.    unsigned allowAreafix: 1; /* Bit 11 */
  91.    unsigned             : 2; /* Bit 12-13 */
  92.    unsigned arrivalDate : 1; /* Bit 14 */
  93.    unsigned sysopRead   : 1; /* Bit 15 */   } areaOptionsType;
  94.  
  95.  
  96. /* ********** FMAIL.CFG ********** */
  97.  
  98. #define MAX_AKAS      32
  99. #define MAX_AKAS_F    64
  100. #define MAX_AKAS_OLD  16
  101. #define MAX_NA_OLD    11
  102. #define MAX_NETAKAS   32
  103. #define MAX_NETAKAS_F 64
  104. #define MAX_USERS     16
  105. #define MAX_UPLREQ    32
  106. #define MAX_MATCH     16           // not used yet
  107.  
  108. #define LOG_NEVER     0x0000
  109. #define LOG_INBOUND   0x0001
  110. #define LOG_OUTBOUND  0x0002
  111. #define LOG_PKTINFO   0x0004
  112. #define LOG_XPKTINFO  0x0008
  113. #define LOG_UNEXPPWD  0x0010
  114. #define LOG_SENTRCVD  0x0020
  115. #define LOG_STATS     0x0040
  116. #define LOG_PACK      0x0080
  117. #define LOG_MSGBASE   0x0100
  118. #define LOG_ECHOEXP   0x0200
  119. #define LOG_NETIMP    0x0400
  120. #define LOG_NETEXP    0x0800
  121. #define LOG_OPENERR   0x1000
  122. #define LOG_EXEC      0x2000
  123. #define LOG_NOSCRN    0x4000
  124. #define LOG_ALWAYS    0x8000
  125. #define LOG_DEBUG     0x8000
  126.  
  127. typedef nodeFakeType _akaListType[MAX_AKAS_OLD];
  128. typedef nodeFakeType akaListType[MAX_AKAS_F];
  129.  
  130. typedef struct
  131. {
  132.    unsigned useEMS       : 1; /* BIT 0 */
  133.    unsigned checkBreak   : 1; /* BIT 1 */
  134.    unsigned swap         : 1; /* BIT 2 */
  135.    unsigned swapEMS      : 1; /* BIT 3 */
  136.    unsigned swapXMS      : 1; /* BIT 4 */
  137.    unsigned              : 1;
  138.    unsigned monochrome   : 1; /* BIT 6 */
  139.    unsigned commentFFD   : 1; /* BIT 7 */
  140.    unsigned PTAreasBBS   : 1; /* BIT 8 */
  141.    unsigned commentFRA   : 1; /* BIT 9 */
  142.    unsigned              : 1; /* BIT 10 */
  143.    unsigned incBDRRA     : 1; /* BIT 11 */
  144.    unsigned              : 1; /* BIT 12 */
  145.    unsigned              : 2;
  146.    unsigned _RA2         : 1; /* BIT 15 */  } genOptionsType;
  147.  
  148. typedef struct
  149. {
  150.    unsigned removeNetKludges : 1; /* Bit 0 */
  151.    unsigned addPointToPath   : 1; /* Bit 1 */
  152.    unsigned checkPktDest     : 1; /* Bit 2 */
  153.    unsigned neverARC060      : 1; /* Bit 3 */
  154.    unsigned createSema       : 1; /* Bit 4 */
  155.    unsigned dailyMail         : 1; /* Bit 5 */
  156.    unsigned warnNewMail      : 1; /* bit 6 */
  157.    unsigned killBadFAtt      : 1; /* Bit 7 */
  158.    unsigned dupDetection     : 1; /* Bit 8 */
  159.    unsigned ignoreMSGID      : 1; /* Bit 9 */
  160.    unsigned ARCmail060       : 1; /* Bit 10 */
  161.    unsigned extNames         : 1; /* Bit 11 */
  162.    unsigned persNetmail      : 1; /* Bit 12 */
  163.    unsigned privateImport    : 1; /* Bit 13 */
  164.    unsigned keepExpNetmail   : 1; /* Bit 14 */
  165.    unsigned killEmptyNetmail : 1; /* Bit 15 */  } mailOptionsType;
  166.  
  167. typedef struct
  168. {
  169.    unsigned sortNew      : 1; /* bit  0   */
  170.    unsigned sortSubject  : 1; /* bit  1   */
  171.    unsigned updateChains : 1; /* bit  2   */
  172.    unsigned reTear       : 1; /* bit  3   */
  173.    unsigned              : 1; /* bit  4   */
  174.    unsigned              : 1; /* bit  5   */
  175.    unsigned removeRe     : 1; /* bit  6   */
  176.    unsigned removeLfSr   : 1; /* bit  7   */
  177.    unsigned scanAlways   : 1; /* bit  8   */
  178.    unsigned scanUpdate   : 1; /* bit  9   */
  179.    unsigned multiLine    : 1; /* bit 10   */
  180.    unsigned              : 1; /* bit 11   */
  181.    unsigned quickToss    : 1; /* bit 12   */
  182.    unsigned              : 1; /* bit 13   */
  183.    unsigned              : 1; /* bit 14   */
  184.    unsigned sysopImport  : 1; /* bit 15   */ } mbOptionsType;
  185.  
  186. typedef struct
  187. {
  188.    unsigned keepRequest  : 1; /* Bit  0 */
  189.    unsigned keepReceipt  : 1; /* Bit  1 */
  190.    unsigned              : 2; /* Bit 2-3 */
  191.    unsigned autoDiscArea : 1; /* Bit  4 */
  192.    unsigned autoDiscDel  : 1; /* Bit  5 has temp. no effect, rec is always deleted */
  193.    unsigned              : 3; /* Bit 6-8 */
  194.    unsigned allowAddAll  : 1; /* Bit  9 */
  195.    unsigned allowActive  : 1; /* Bit 10 */
  196.    unsigned              : 1; /* Bit 11 */
  197.    unsigned allowPassword: 1; /* Bit 12 */
  198.    unsigned allowPktPwd  : 1; /* Bit 13 */
  199.    unsigned allowNotify  : 1; /* Bit 14 */
  200.    unsigned allowCompr   : 1; /* Bit 15 */  } mgrOptionsType;
  201. #if 0
  202. typedef struct
  203. {
  204.    unsigned active      : 1; /* Bit  0 */
  205.    unsigned tinySeenBy  : 1; /* Bit  1 */
  206.    unsigned security    : 1; /* Bit  2 */
  207.    unsigned             : 1; /* Bit  3 */
  208.    unsigned allowPrivate: 1; /* Bit  4 */
  209.    unsigned impSeenBy   : 1; /* Bit  5 */
  210.    unsigned checkSeenBy : 1; /* Bit  6 */
  211.    unsigned             : 1; /* Bit  7 */
  212.    unsigned local       : 1; /* Bit  8 */
  213.    unsigned             : 1; /* Bit  9 */
  214.    unsigned passThrough : 1; /* Bit 10 */
  215.    unsigned             : 3; /* Bit 11-13 */
  216.    unsigned arrivalDate : 1; /* Bit 14 */
  217.    unsigned sysopRead   : 1; /* Bit 15 */     } defaultOptionsType;
  218. #endif
  219. typedef struct
  220. {
  221.    unsigned addPlusPrefix :  1; /* BIT 0 */
  222.    unsigned               :  3;
  223.    unsigned unconditional :  1; /* BIT 4 */
  224.    unsigned               : 11;    } uplOptType;
  225.  
  226. typedef struct
  227. {
  228.    uchar userName[36];
  229.    uchar reserved[28];
  230. } userType;
  231.  
  232. typedef struct
  233. {
  234.    nodeNumType node;
  235.    uchar       program[9];
  236.    uchar       password[17];
  237.    uchar       fileName[13];
  238.    uchar       fileType;
  239.    u32         groups;
  240.    uchar       originAka;
  241.    uplOptType  options;
  242.    uchar       reserved[9];  } uplinkReqType;
  243.  
  244. typedef struct
  245. {  u16   valid;
  246.    u16   zone;
  247.    u16   net;
  248.    u16   node;    } akaMatchNodeType;
  249.  
  250. typedef struct
  251. {
  252.    akaMatchNodeType amNode;
  253.    u16              aka;    } akaMatchType;
  254.  
  255. /* ATTENTION: FMAIL.CFG does NOT use the new config file type yet (no header) !!! */
  256.  
  257. typedef struct
  258. {
  259.    uchar           versionMajor;
  260.    uchar           versionMinor;
  261.    s32             creationDate;
  262.    u32             key;
  263.    u32             reservedKey;
  264.    u32             relKey1;
  265.    u32             relKey2;
  266.    uchar           reserved1[22];
  267.    mgrOptionsType  mgrOptions;
  268.    _akaListType    _akaList;
  269.    u16             _netmailBoard[MAX_NA_OLD];
  270.    u16             _reservedNet[16-MAX_NA_OLD];
  271.    genOptionsType  genOptions;
  272.    mbOptionsType   mbOptions;
  273.    mailOptionsType mailOptions;
  274.    u16             maxPktSize;
  275.    u16             kDupRecs;
  276.    u16             mailer;
  277.    u16             bbsProgram;
  278.    u16             maxBundleSize;
  279.    u16             extraHandles; /* 0-235 */
  280.    u16             autoRenumber;
  281.    u16             bufSize;
  282.    u16             ftBufSize;
  283.    u16             allowedNumNetmail;
  284.    u16             logInfo;
  285.    u16             logStyle;
  286.    uchar           reserved2[68];
  287.    u16             colorSet;
  288.    uchar           sysopName[36];
  289.    u16             defaultArc;
  290.    u16             _adiscDaysNode;
  291.    u16             _adiscDaysPoint;
  292.    u16             _adiscSizeNode;
  293.    u16             _adiscSizePoint;
  294.    uchar           reserved3[16];
  295.    uchar           tearType;
  296.    uchar           tearLine[25];
  297.    pathType        summaryLogName;
  298.    u16             recBoard;
  299.    u16             badBoard;
  300.    u16             dupBoard;
  301.    uchar           topic1[16];
  302.    uchar           topic2[16];
  303.    pathType        bbsPath;
  304.    pathType        netPath;
  305.    pathType        sentPath;
  306.    pathType        rcvdPath;
  307.    pathType        inPath;
  308.    pathType        outPath;
  309.    pathType        securePath;
  310.    pathType        logName;
  311.    pathType        swapPath;
  312.    pathType        semaphorePath;
  313.    pathType        pmailPath;
  314.    pathType        areaMgrLogName;
  315.    pathType        autoRAPath;
  316.    pathType        autoFolderFdPath;
  317.    pathType        autoAreasBBSPath;
  318.    pathType        autoGoldEdAreasPath;
  319.    archiverInfo    unArc;
  320.    archiverInfo    unZip;
  321.    archiverInfo    unLzh;
  322.    archiverInfo    unPak;
  323.    archiverInfo    unZoo;
  324.    archiverInfo    unArj;
  325.    archiverInfo    unSqz;
  326.    archiverInfo    GUS;
  327.    archiverInfo    arc;
  328.    archiverInfo    zip;
  329.    archiverInfo    lzh;
  330.    archiverInfo    pak;
  331.    archiverInfo    zoo;
  332.    archiverInfo    arj;
  333.    archiverInfo    sqz;
  334.    archiverInfo    customArc;
  335.    pathType        autoFMail102Path;
  336.    uchar           reserved4[35];
  337.    areaOptionsType _optionsAKA[MAX_NA_OLD];
  338.    uchar           _groupsQBBS[MAX_NA_OLD];
  339.    u16             _templateSecQBBS[MAX_NA_OLD];
  340.    uchar           _templateFlagsQBBS[MAX_NA_OLD][4];
  341.    uchar           _attr2RA[MAX_NA_OLD];
  342.    uchar           _aliasesQBBS[MAX_NA_OLD];
  343.    u16             _groupRA[MAX_NA_OLD];
  344.    u16             _altGroupRA[MAX_NA_OLD][3];
  345.    uchar           _qwkName[MAX_NA_OLD][13];
  346.    u16             _minAgeSBBS[MAX_NA_OLD];
  347.    u16             _daysRcvdAKA[MAX_NA_OLD];
  348.    uchar           _replyStatSBBS[MAX_NA_OLD];
  349.    u16             _attrSBBS[MAX_NA_OLD];
  350.    uchar           groupDescr[26][27];
  351.    uchar           reserved5[9];
  352.    uchar           _msgKindsRA[MAX_NA_OLD];
  353.    uchar           _attrRA[MAX_NA_OLD];
  354.    u16             _readSecRA[MAX_NA_OLD];
  355.    uchar           _readFlagsRA[MAX_NA_OLD][4];
  356.    u16             _writeSecRA[MAX_NA_OLD];
  357.    uchar           _writeFlagsRA[MAX_NA_OLD][4];
  358.    u16             _sysopSecRA[MAX_NA_OLD];
  359.    uchar           _sysopFlagsRA[MAX_NA_OLD][4];
  360.    u16             _daysAKA[MAX_NA_OLD];
  361.    u16             _msgsAKA[MAX_NA_OLD];
  362.    uchar           _descrAKA[MAX_NA_OLD][51];
  363.    userType        users[MAX_USERS];
  364.    akaMatchType    akaMatch[MAX_MATCH];     // not used yet
  365.    uchar           reserved6[1040-10*MAX_MATCH];
  366.    pathType        sentEchoPath;
  367.    archiverInfo    preUnarc;
  368.    archiverInfo    postUnarc;
  369.    archiverInfo    preArc;
  370.    archiverInfo    postArc;
  371.    archiverInfo    unUc2;
  372.    archiverInfo    unRar;
  373.    archiverInfo    resUnpack[6];
  374.    archiverInfo    uc2;
  375.    archiverInfo    rar;
  376.    archiverInfo    resPack[6];
  377.    uplinkReqType   uplinkReq[MAX_UPLREQ+32];
  378.    archiverInfo    unArc32;
  379.    archiverInfo    unZip32;
  380.    archiverInfo    unLzh32;
  381.    archiverInfo    unPak32;
  382.    archiverInfo    unZoo32;
  383.    archiverInfo    unArj32;
  384.    archiverInfo    unSqz32;
  385.    archiverInfo    unUc232;
  386.    archiverInfo    unRar32;
  387.    archiverInfo    GUS32;
  388.    archiverInfo    resUnpack32[6];
  389.    archiverInfo    preUnarc32;
  390.    archiverInfo    postUnarc32;
  391.    archiverInfo    arc32;
  392.    archiverInfo    zip32;
  393.    archiverInfo    lzh32;
  394.    archiverInfo    pak32;
  395.    archiverInfo    zoo32;
  396.    archiverInfo    arj32;
  397.    archiverInfo    sqz32;
  398.    archiverInfo    uc232;
  399.    archiverInfo    rar32;
  400.    archiverInfo    customArc32;
  401.    archiverInfo    resPack32[6];
  402.    archiverInfo    preArc32;
  403.    archiverInfo    postArc32;
  404.    uchar           descrAKA[MAX_NETAKAS][51];
  405.    uchar           qwkName[MAX_NETAKAS][13];
  406.    areaOptionsType optionsAKA[MAX_NETAKAS];
  407.    uchar           msgKindsRA[MAX_NETAKAS];
  408.    u16             daysAKA[MAX_NETAKAS];
  409.    u16             msgsAKA[MAX_NETAKAS];
  410.    uchar           groupsQBBS[MAX_NETAKAS];
  411.    uchar           attrRA[MAX_NETAKAS];
  412.    uchar           attr2RA[MAX_NETAKAS];
  413.    u16             attrSBBS[MAX_NETAKAS];
  414.    uchar           aliasesQBBS[MAX_NETAKAS];
  415.    u16             groupRA[MAX_NETAKAS];
  416.    u16             altGroupRA[MAX_NETAKAS][3];
  417.    u16             minAgeSBBS[MAX_NETAKAS];
  418.    u16             daysRcvdAKA[MAX_NETAKAS];
  419.    uchar           replyStatSBBS[MAX_NETAKAS];
  420.    u16             readSecRA[MAX_NETAKAS];
  421.    uchar           readFlagsRA[MAX_NETAKAS][8];
  422.    u16             writeSecRA[MAX_NETAKAS];
  423.    uchar           writeFlagsRA[MAX_NETAKAS][8];
  424.    u16             sysopSecRA[MAX_NETAKAS];
  425.    uchar           sysopFlagsRA[MAX_NETAKAS][8];
  426.    u16             templateSecQBBS[MAX_NETAKAS];
  427.    uchar           templateFlagsQBBS[MAX_NETAKAS][8];
  428.    uchar           reserved7[512];
  429.    u16             netmailBoard[MAX_NETAKAS_F];
  430.    akaListType     akaList;
  431.    } configType;
  432.  
  433.  
  434.  
  435. /* ********** FMAIL.AR ********** */
  436.  
  437. #if defined(__FMAILX__) || defined(__32BIT__)
  438. #define MAX_AREAS   4096
  439. #else
  440. #define MAX_AREAS    512
  441. #endif
  442. #define MAX_FORWARD   64
  443.  
  444. #define MB_PATH_LEN_OLD   19
  445. #define MB_PATH_LEN       61
  446. #define ECHONAME_LEN_090  25
  447. #define ECHONAME_LEN      51
  448. #define COMMENT_LEN       51
  449. #define ORGLINE_LEN       59
  450.  
  451. typedef uchar areaNameType[ECHONAME_LEN];
  452.  
  453. /* See Area File for file header structure !!! */
  454.  
  455. typedef struct
  456. {
  457.    unsigned tossedTo     : 1;  /* BIT 0 */
  458.    unsigned              : 15; /* BIT 1-15 */  } areaStatType;
  459.  
  460. typedef struct
  461. {
  462.    u16             signature; /* contains "AE" for echo areas in FMAIL.AR and */
  463.                   /* "AD" for default settings in FMAIL.ARD       */
  464.    u16             writeLevel;
  465.    areaNameType    areaName;
  466.    uchar           comment[COMMENT_LEN];
  467.    areaOptionsType options;
  468.    u16             boardNumRA;
  469.    uchar           msgBaseType;
  470.    uchar           msgBasePath[MB_PATH_LEN];
  471.    u16             board;
  472.    uchar           originLine[ORGLINE_LEN];
  473.    u16             address;
  474.    u32             group;
  475.    u16             _alsoSeenBy; /* obsolete: see the 32-bit alsoSeenBy below */
  476.    u16             msgs;
  477.    u16             days;
  478.    u16             daysRcvd;
  479.  
  480.    nodeNumType     export[MAX_FORWARD];
  481.  
  482.    u16             readSecRA;
  483.    uchar           flagsRdRA[4];
  484.    uchar           flagsRdNotRA[4];
  485.    u16             writeSecRA;
  486.    uchar           flagsWrRA[4];
  487.    uchar           flagsWrNotRA[4];
  488.    u16             sysopSecRA;
  489.    uchar           flagsSysRA[4];
  490.    uchar           flagsSysNotRA[4];
  491.    u16             templateSecQBBS;
  492.    uchar           flagsTemplateQBBS[4];
  493.    uchar           _internalUse;
  494.    u16             netReplyBoardRA;
  495.    uchar           boardTypeRA;
  496.    uchar           attrRA;
  497.    uchar           attr2RA;
  498.    u16             groupRA;
  499.    u16             altGroupRA[3];
  500.    uchar           msgKindsRA;
  501.    uchar           qwkName[13];
  502.    u16             minAgeSBBS;
  503.    u16             attrSBBS;
  504.    uchar           replyStatSBBS;
  505.    uchar           groupsQBBS;
  506.    uchar           aliasesQBBS;
  507.    u32             lastMsgTossDat;
  508.    u32             lastMsgScanDat;
  509.    u32             alsoSeenBy;
  510.    areaStatType    stat;
  511.    uchar           reserved[180];   } rawEchoType;
  512.  
  513.  
  514.  
  515. /* ********** FMAIL.NOD ********** */
  516.  
  517. #if defined(__FMAILX__) || defined(__32BIT__)
  518. #define MAX_NODEMGR      512
  519. #else
  520. #define MAX_NODEMGR      256
  521. #endif
  522.  
  523. #define PKTOUT_PATH_LEN  53
  524.  
  525. #define PKT_TYPE_2PLUS   1
  526. #define CAPABILITY       PKT_TYPE_2PLUS
  527.  
  528. typedef struct
  529. {
  530.    unsigned fixDate     : 1; /* Bit 0 */
  531.    unsigned tinySeenBy  : 1; /* Bit 1 */
  532.    unsigned             : 1; /* Bit 2 */
  533.    unsigned ignorePwd   : 1; /* Bit 3 */
  534.    unsigned active      : 1; /* Bit 4 */
  535.    unsigned             : 1;
  536.    unsigned routeToPoint: 1; /* Bit 6 */
  537.    unsigned packNetmail : 1; /* Bit 7 */
  538.    unsigned             : 1; /* Bit 8 */
  539.    unsigned             : 3;
  540.    unsigned forwardReq  : 1; /* Bit 12 */
  541.    unsigned remMaint    : 1; /* Bit 13 */
  542.    unsigned allowRescan : 1; /* Bit 14 */
  543.    unsigned notify      : 1;   } nodeOptionsType;
  544.  
  545. typedef struct /* OLD !!! */
  546. {
  547.    nodeNumType     node;
  548.    uchar           reserved1[2];
  549.    u16             capability;
  550.    u16             archiver;
  551.    nodeOptionsType options;
  552.    u32             groups;
  553.    u16             outStatus;
  554.    uchar           reserved2[32];
  555.    uchar           password[18];
  556.    uchar           packetPwd[10];
  557.    uchar           reserved[2];
  558.    nodeNumType     viaNode;
  559.    uchar           sysopName[36];   } nodeInfoTypeOld;
  560.  
  561. /* See Area File for file header structure !!! */
  562.  
  563. typedef struct
  564. {
  565.    u16             signature; /* contains "ND" */
  566.    u16             writeLevel;
  567.    nodeNumType     node;
  568.    nodeNumType     viaNode;
  569.    u16             capability;
  570.    nodeOptionsType options;
  571.    u16             archiver;
  572.    u32             groups;
  573.    u16             outStatus;
  574.    uchar           sysopName[36];
  575.    uchar           password[18];
  576.    uchar           packetPwd[9];
  577.    uchar           useAka;
  578.    u32             lastMsgRcvdDat;
  579.    u32             lastMsgSentDat;
  580.    u32             lastNewBundleDat;
  581.    uchar           pktOutPath[PKTOUT_PATH_LEN];
  582.    u16             passiveDays;
  583.    u16             passiveSize;
  584.    uchar           reserved[27];        } nodeInfoType;
  585.  
  586.  
  587.  
  588. /* ********** FMAIL.PCK ********** */
  589.  
  590. #define PACK_STR_SIZE 64
  591. #define MAX_PACK      128
  592.  
  593. typedef uchar packEntryType[PACK_STR_SIZE];
  594. typedef packEntryType packType[MAX_PACK];
  595.  
  596.  
  597.  
  598. /* ********** FMAIL.BDE ********** */
  599.  
  600. #define MAX_BAD_ECHOS 50
  601.  
  602. typedef struct
  603. {
  604.    areaNameType badEchoName;
  605.    nodeNumType  srcNode;
  606.    s16          destAka;      } badEchoType;
  607.  
  608.  
  609.